package wordCount

import org.apache.flink.api.scala.ExecutionEnvironment

/**
 * 批量计算 word 出现的次数
 *
 * @author Liufei
 * @date 2020/5/1 10:14 下午
 */
object BatchWordCount {
  def main(args: Array[String]): Unit = {
    // 1. 初始化Flink的Streaming（流计算）上下文执行环境
    val env = ExecutionEnvironment.getExecutionEnvironment
    // 2. 导入隐式转换，建议写在这里，可以防止IDEA代码提示出错的问题
    import org.apache.flink.api.scala._
    // wc.txt文件在main目录下的resources。注意这个绝对路径不要包含中文
    val dataPath = getClass.getResource("/wc.txt")
    // 3. 读取数据
    val stream = env.readTextFile(dataPath.getPath)
    stream.flatMap(_.split(" "))
      .map((_, 1))
      .groupBy(0)
      .sum(1)
      .print()
  }
}
